$(document).ready(function(){
	
	var ruleName="" ; //
	var hostName= ""; //
	var metricName= "";//
	var triggerFuncName= "";//
	var funcParameter= "";//int 
	var paraUnit= ""  //
	var operator= "";//
	var triggerThreshold= "";//double
	var recoverThreshold= "";//double
	var faultTimes= "";//byte
	var expressionArea= "";//不写入数据库
	var associationArea="";//不写入数据库
	var description= "";//
	var severe= "";//byte
	var mediaName= "";//
	var isEnable= "";//byte
	
	//$("#expressionArea").val("123456");
	//$("#expressionArea").val(str);   str是变量
	
	//增加表达式 模态框里的confirm按钮
	$('#addConfirm').bind('click',function(){
		hostName= $("#hostName").val();
		metricName = $("#metricName").val();
		triggerFuncName = $("#triggerFuncName").val();
		funcParameter = $("#funcParameter").val();
		paraUnit = $("#paraUnit").val();
		operator = $("#operator").val();
		//triggerThreshold = parseInt($("#triggerThreshold").val());
		triggerThreshold = $("#triggerThreshold").val();
		
		recoverThreshold = $("#recoverThreshold").val();
		faultTimes = $("#faultTimes").val();
		//alert(triggerThreshold + ' '+recoverThreshold+' '+faultTimes);
		$("#expressionArea").val("{"+hostName+":"+metricName+" "+triggerFuncName+"("+funcParameter+" "+paraUnit+")}"+operator+triggerThreshold);
		 if(paraUnit=="Number"){
			 paraUnit="n";
		 }else if(paraUnit=="Minute"){
			 paraUnit="m";
		 }else if(paraUnit=="Hour"){
			 paraUnit="h";
		 }else if(paraUnit=="Day"){
			 paraUnit="d";
		 }else{ //默认m
			 paraUnit="m";
		 }
		 //alert(paraUnit);
		
	});
	
	
	$('#test').bind('click',function(){
		
		
		
	});
	

	/*function htmlToStr(s){
		if (s==null||s.equals("")) return "";
	    s = s.replace("&amp;","&");
	    s = s.replace("&lt;","<");
	    s = s.replace("&gt;",">");
	    s = s.replace("&nbsp;"," ");
	    //s = s.replaceAll("<br/>","\n");
	    //s = s.replaceAll("&#39","'");
	    return s;
	}*/
	
	
	//增加表达式模态框里的selectMetric按钮
	//直接绑定模态框出来metric
	$('#selectMetric').bind('click',function(){
		
	});
	
	
	/*
	// & | ! 按钮
	$('#andBtn').bind('click',function(){
		if($("#associationArea").val()!=""){
			var str=$("#associationArea").val();
			$("#associationArea").val(str+'&');
		};
		
	});
	
	$('#orBtn').bind('click',function(){
		if($("#associationArea").val()!=""){
			var str=$("#associationArea").val();
			$("#associationArea").val(str+'|');
		};
	});
	
	$('#notBtn').bind('click',function(){
		if($("#associationArea").val()!=""){
			var str=$("#associationArea").val();
			$("#associationArea").val(str+'!');
		};
	});
	*/	
	
	
	$('#metric_table').bind('click',function(){
		
		//s1为css样式  写在rule_configuration.html的<style>中
		//双击使表格某行变色
		$("table#metric_table tbody tr").bind('click',function(){
			$(this).addClass("s1").siblings().removeClass("s1");  
			$(this).attr("checked", true);
			
		    var td = $( this ).find( "td" );//this指向了当前点击的行，通过find我们获得了该行所有的td对象
		    //题中说到某个td，为了演示所以我们假设是要获得第0个td的数据
		    var tableData = td.eq( 0 ).html();//通过eq可以得到具体的某个td对象，从而得到相应的数据
		    //alert(tableData);
			//增加表达式模态框里 选择metric里的confirm按钮
			$('#metricConfirm').bind('click',function(){
				//先将文本框值置为空
				$("#metricName").val("");
				$("#metricName").val(tableData);
				
			});
		});
	});
	
	
	
	$('#expression_table').bind('click',function(){
		
		//$("table#expressTable tr").css("background","pink")
		//s1为css样式  写在rule_configuration.html的<style>中
		//双击使表格某行变色
		$("table#expression_table tbody tr").bind('click',function(){
			$(this).addClass("s1").siblings().removeClass("s1");  
			$(this).attr("checked", true);
			
		    var td = $( this ).find( "td" );//this指向了当前点击的行，通过find我们获得了该行所有的td对象
		    //题中说到某个td，为了演示所以我们假设是要获得第0个td的数据
		    var tableData = td.eq( 0 ).text();//通过eq可以得到具体的某个td对象，从而得到相应的数据
		    //alert(tableData);
		
			//选择表达式里的confirm按钮
			$('#expressionConfirm').bind('click',function(){
				//先将文本框值置为空
				$("#expressionArea").val("");
				$("#expressionArea").val(tableData);////
				//对表达式的各个变量赋值
				//{lab3:cpu/usage count(3 m)}< 2
				//'{'+hostName+':'+metricName+' '+funcName+'('+funcParameter+' '+paraUnit+')}'+operator+' '+triggerThreshold
				var str = $("#expressionArea").val();
				var split1=str.split(" ");//使用空格将字符串分开
				var split2=split1[0].split(":");
				split2[0]=split2[0].replace("{",""); //去掉{hostName中的{
				var split3=split1[1].split("(");
				var split4=split1[2].split(")}");
				
				hostName = split2[0];
				metricName = split2[1];
				triggerFuncName = split3[0];
				funcParameter = split3[1];
				paraUnit = split4[0];
				operator = split4[1];
				triggerThreshold = split1[3];
				//规则表达式里没有这两个值  默认设置  正确向后台传值
				recoverThreshold = 0.5;
				faultTimes = 3;
				/*alert(split1[0]); //  {hostName:metricName
				alert(split1[1]); //  funcName(funcParameter
				alert(split1[2]); //  paraUnit)}operator
				alert(split1[3]); //  triggerThreshold
				alert("hostName:"+hostName+" metricName:"+metricName+" triggerFuncName:"+triggerFuncName+" funcParameter:"
					+funcParameter+" paraUnit:"+paraUnit+" operator:"+operator+" triggerThreshold:"+triggerThreshold);
				*/
			});
			
		});
	});
	
	
	//select_rule
	//选择关联规则
	/*
	$('#select_rule').bind('click',function(){
		
		$("table#select_rule tbody tr").bind('click',function(){
			$(this).addClass("s1").siblings().removeClass("s1");  
			$(this).attr("checked", true);
			
		    var td = $( this ).find( "td" );//this指向了当前点击的行，通过find我们获得了该行所有的td对象
		    //题中说到某个td，为了演示所以我们假设是要获得第0个td的数据
		    var tableData = td.eq( 0 ).html();//通过eq可以得到具体的某个td对象，从而得到相应的数据
		    
			//增加表达式模态框里 选择表达式里的confirm按钮
			$('#ruleConfirm').bind('click',function(){
				//先取得原本的值 追加在后面
				var str=$("#associationArea").val();
				//$("#expressionArea").val("");
				$("#associationArea").val(str+'('+tableData+')');/////
				
			});
		});
	});
	*/	
	
	//submit按钮
	$('#ruleSubmitBtn').bind('click',function(){
		 ruleName= $("#ruleName").val();
		 description= $("#description").val();
		 severe= $("#severe").val();
		 if(severe=="Warning"){
			 severe=1;
		 }else if(severe=="Low"){
			 severe=2;
		 }else if(severe=="High"){
			 severe=3;
		 }else if(severe=="Higher"){
			 severe=4;
		 }else if(severe=="Critical"){
			 severe=5;
		 }else if(severe=="Disastrous"){
			 severe=6;
		 }
		 //alert(severe);
		 //associationArea= $("#associationArea").val();  //暂时不传
		
		 //$('input:checkbox:checked') 等同于 $('input[type=checkbox]:checked') 意思是选择被选中的checkBox
	     $.each($("input:checkbox[name='mediaName']:checked"),function(){
	    	 mediaName+=$(this).val()+" ";
         });
	     //是否启用规则值
	     isEnable = $("input[name='isEnable']:checked").val();
	     
		$.ajax({
			type:'post',//提交数据的方法类型
			url: '/detection/rule/insert',//后台接收参数的文件地址
			cache:false,
			dataType: "text",
			data : /*$("#rule_form").serializeArray(),*/{
				'ruleName':ruleName,
				'hostName':hostName,
				'metricName':metricName,
				'triggerFuncName':triggerFuncName,
				'funcParameter':funcParameter,
				'paraUnit':paraUnit,
				'operator':operator,
				'triggerThreshold':triggerThreshold,
				'recoverThreshold':recoverThreshold,
				'faultTimes':faultTimes,
				'description':description,
				'severe':severe,
				'mediaName':mediaName,
				'isEnabled':isEnable
			},

			success : function(data) {
	            alert("请求成功");  //不走？？？
	        },
	        error : function(jqXHR, textStatus, errorThrown){
	        	/*alert(jqXHR.responseText);
	            alert(jqXHR.status);
	            alert(jqXHR.readyState);
	            alert(jqXHR.statusText);*/
	        	alert("请求失败");
	        	
	        }
	        
		});
	});
	
});


